Since the dawn of the computer age, there has been a continual drive for achieving greater computing power and memory in less space. Recently, this scene has been played out with portable or mobile computing devices, such as personal digital assistants (PDA). With the increasing ability to place greater amounts of memory in the mobile computing devices, software vendors have been working hard to offer the same applications in smaller versions, usually with less features, to accommodate the smaller memory available in the mobile computing devices. In addition, newer programming languages, such as the JAVA programming language, are used to allow software applications to be universally compatible with most operating systems through the use of a virtual machine present on a host device. However, this universality comes at a cost of using lots of memory, which makes miniaturization more challenging.
One recent breakthrough in reducing the memory size of software applications, i.e. their memory footprint, is a technique for condensing a software application. With condensing, the application still retains all of it features but takes up less memory space. One technique for condensing a software code is disclosed in U.S. Pat. No. 6,163,780, “System and Apparatus For Condensing Executable Computer Software Code” and is now commonly known and popularized by Hewlett-Packard, Inc. as the Chai Freeze Dry condensing technique. Using condensed software applications allows a greater number of, or greater sized, software applications to be installed in mobile computing devices. Alternatively, the same number of software applications can be installed in less memory space in the mobile computing devices, thus enabling the mobile computing devices to become smaller and/or less expensive.
One prior art example is shown in FIG. 1, which illustrates system 10 for condensing application software files. As shown in FIG. 1, system 10 includes a plurality of application software files 12, virtual machine 14, condensing program 15, and standalone condensed application files 16. Application software files 12 are conventional software programs, such as those written in the JAVA programming language. Condensing program 15 is a software program for condensing application software files 12 and preferably employs the condensing algorithms disclosed in U.S. Pat. No. 6,162,780. Standalone condensed application files 16 produced by condensing program 15 are closed files which can operate on any virtual machine 14, making them portable and not dependent on other files for operation. As previously discussed, these standalone condensed application files 16 take up less memory footprint for a device on which they are installed.
Despite these advances, newer software applications continue to demand more memory, and users demand more and more applications for mobile computing devices. Accordingly, there is a continuing drive for improvement to reduce the memory space required to store and execute a software application on a mobile computing device.